tweets2 Das Tidyverse
2.1 Ein Metapaket
2.2 Tibbles
In Kapitel X haben wir den Dataframe als Datenstruktur in R kennengelernt. Mit einem Dataframe können wir tabellarische Daten, wie wir sie aus Spreadsheet-Programmen wie Microsoft Excel oder Google Sheets kennen, in R abbilden. Das Tidyverse bringt eine verbesserte Version des klassischen Dataframes mit, das Tibble.
Der Name Tibble leitet sich vermutlich aus dem Begriff Tidy Table ab. Ein Tibble bringt die folgenden Verbesserungen im Vergleich zu einem klassischen Dataframe mit sich:
- Kürzere und prägnantere Ausgabe auf der Konsole.
- Keine Veränderung von Spaltennamen im Vergleich zur Quelle.
- Keine Umwandlung von Zeichenketten in Faktoren als Standard.
- Ein Tibble erzeugt keine Namen für Zeilen (
rownames)
Ausgabe auf der Konsole
Eine nützliche Verbesserung ist die sinnvollere Ausgabe eines Tibbles auf der Konsole. Das Beispiel unten gibt das Tibble tweets, das wir im nächsten Kapitel laden werden, auf der Konsole aus:
tweets ein normaler Dateframe bekämen wir eine sehr lange Ausgabe aller
Zeilen und 22 Spalten. Ein Tibble zeigt uns nur die ersten 10 Zeilen als Beispiele, mit jeweils so vielen Spalten wie sinnvoll in die Ausgabe passen. Die Information, dass es noch weitere Zeilen und Spalten gibt (und wieviele), folgt darunter.
Tibbles sind auch Dataframes
Jedes Tibble ist gleichzeitig ein klassischer Dataframe. Es besitzt aber zusätzlich die Klassen tbl und tbl_df, die für die zusätzlichen Funktionen und das veränderte Verhalten sorgen.
Zur Illustration erstellen wir manuell einen Dataframe und einen Tibble und lassen uns danach mit class die R-Klassen ausgeben, die beide Objekte besitzen:
df <- data.frame(id = c(1, 2, 3), name = c("Mark", "John", "Eve"))
class(df)[1] "data.frame"
Und nun das Tibble:
tbl <- tibble(id = c (1, 2, 3), name = c("Mark", "John", "Eve"))
class(tbl)[1] "tbl_df" "tbl" "data.frame"
Dadurch, dass ein Tibble auch gleichzeitig ein klassischer Dataframe ist, können wir alle Funktionen darauf anwenden, die auch mit Dataframes funktionieren. Schließlich ist ein Tibble ja ein Dataframe.
colnames(tbl)[1] "id" "name"
Wir können jederzeit aus einem Dataframe ein Tibble erzeugen:
df <- as_tibble(df)
dfDas manuelle Erzeugen eines Tibble geht auf zwei unterschiedliche Wege. Zum einen mit der tibble Funktion, die Paare aus Spaltenname und zugehörigen Werten als Vektor erwartet (s. oben):
tbl <- tibble(id = c (1, 2, 3), name = c("Mark", "John", "Eve"))Eine andere Möglichkeit ist die zeilenweise Erstellung mit tribble:
tbl <- tribble(
~id, ~name,
1, "Mark",
2, "John",
3, "Eve"
)